<?php
namespace restphp;

use restphp\aop\AspectBuilder;
use restphp\core\RestBuildV2;
use restphp\core\RestRun;
use restphp\core\RestBuild;

include('core/RestLoad.php');

/**
 * Class Rest
 * @author sofical
 * @date 2017-03-17
 * @package restphp
 */
class Rest{

    public static function _before() {
        spl_autoload_register(array('restphp\core\RestLoad','load'));
    }

    /**
     * 执行入口
     */
    public static function run() {
        //注入类文件加载器
        self::_before();

        //rest路由开始
        RestRun::run();
    }

    private static $_isBuilding = false;

    /**
     * 打包项目
     */
    public static function build() {
        //注入类文件加载器
        self::_before();

        //标记为正在打包
        self::$_isBuilding = true;

        //执行打包构建
        RestBuild::run();

        //V2打包
        RestBuildV2::run();

        //AOP构建
        AspectBuilder::build();
    }

    /**
     * 上下文获取是否正在打包.
     * @return bool
     */
    public static function isBuilding() {
        return self::$_isBuilding;
    }
}